Adaptive differential pulse code modulation (ADPCM) is a widely used method of compressing digital speech signals in the telecommunications industry. The International Telegraph and Telephone Consultative Committee (CCITT) set forth international standard G.726 for ADPCM to provide a uniform protocol for digital telecommunication throughout the world. The CCITT has recently changed its name to the International Telecommunication Union (ITU) and, accordingly, the standard is now more correctly referred to as the ITU-T (ITU-Telecommunications) G.726 standard.
A channel of digital telephonic speech communication typically comprises 64 Kbits/sec. This rate is dictated by the fact that the analog speech is sampled at a rate of 8 KHz, with each sample being 8 bits in length (i.e., 256 level quantization). In accordance with the standard, the 64 Kbits/sec. digital data stream can be compressed to any one of 40 Kbits/sec., 32 Kbits/sec., 24 Kbits/sec. or 16 Kbits/sec., i.e., each 8 bit sample can be compressed to 5, 4, 3, or 2 bits.
The ITU-T G.726 standard sets forth the mathematical operations that must be performed to encode or decode a digital signal in accordance with the standard. However, it leaves the actual implementation to the discretion of designers of telecommunications equipment.
The complete operation is set forth in detail in the ITU-T G.726 standard, which is incorporated herein by reference. In accordance with ITU-T G.726, the original uncompressed digital sample is termed S, the decompressed version of an incoming compressed signal is referred to as SD, and the compressed signal is termed I regardless of whether it is an incoming signal which is being decompressed or a outgoing signal which has just been compressed from the original signal S. In this specification, the terms I(receive) and I(transmit) will be used to differentiate, when necessary, between an incoming compressed signal which is to be decompressed and an outgoing signal which has just been compressed.
The encode (compression) and decode (decompression) operations under ITU-T G.726 comprise a significant amount of substantially identical operations. Particularly, both include essentially the same feedback loop. Accordingly, many of the intermediate variables needed for compression and decompression are the same.
In ADPCM, the compressed bit pattern, I, is determined as a function, not only of the instant 8 bit sample which is being compressed, but also of all previous samples. ADPCM is a predictive algorithm in which an estimate of the present sample is predicted based on previous samples. The signal estimate, termed SE under ITU-T G.726, is subtracted from the actual signal to derive the encoded value I or the decoded value SD, as the case may be.
An apparatus for performing ADPCM can be constructed in the programmable environment, for example, such as a programmed digital signal processor (DSP). It also may be implemented entirely in hardware or any combination of hardware and software. Known hardware implementations require a substantial number of clock cycles to perform the complete encode or decode operation. In particular, some known hardware implementations of ITU-T G.726 require up to about 130 clock cycles per sample conversion. Accordingly, such hardware implementations require high clock speeds and, therefore, have significant power requirements. For instance, an algorithm which requires 130 clock cycles to perform a conversion in conformity with ITU-T G.726 must operate at a minimum speed of 8 Kbits/sec..times.130 clock cycles=1.04 MHz per channel.
Most programmable environment solutions are area extensive in terms of both required memory space and hardware area.
Another problem with certain prior art implementations of G.726 (particularly hardware implementations) is that they require multiple sets of the hardware to handle multiple channels of data. Thus, for instance, a full duplex telephone implementation would require 2 sets of essentially identical hardware, one to decompress received compressed data and another for compressing uncompressed data for transmission. Accordingly, increasing the number of channels increases expense, area, and complexity.
Accordingly, it is an object of the present invention to provide an improved method and apparatus for implementing adaptive differential pulse code modulation.
It is another object of the present invention to provide a method and apparatus for performing ADPCM in a minimal number of clock cycles per conversion.
It is a further object of the present invention to provide an improved method and apparatus for performing adaptive differential pulse code modulation in accordance with the ITU-T G.726 international standard.